/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.vo;

import java.util.ArrayList;
import java.util.Iterator;

/**
 *
 * @author diegoalejandro
 */
public class GestionarDiccionario {
    
    
    private char abeceda[] = {'.', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
    private ArrayList<String> diccionario;  
    private String ejemplo;
    

    public char[] getAbeceda() {
        return abeceda;
    }

    public void setAbeceda(char[] abeceda) {
        this.abeceda = abeceda;
    }

    public ArrayList<String> getDiccionario() {
        return diccionario;
    }

    public void setDiccionario(ArrayList<String> diccionario) {
        this.diccionario = diccionario;
    }

    public String getEjemplo() {
        return ejemplo;
    }

    public void setEjemplo(String ejemplo) {
        this.ejemplo = ejemplo;
    }
    

    /**
     * Busca la posición de la Letra que entra como parámetro y retorna la
     * posicion.
     *
     * @param letra
     * @return
     */
    public int buscarPosLetra(char letra) {
        int posicion = 0;
        for (int i = 1; i < this.abeceda.length; i++) {
            if (this.abeceda[i] == letra) {
                posicion = i;
                break;
            }
        }
        return posicion;
    }
    
     /**
     * conviuerte a mayúscula
     *
     * @param nombre
     */
    public String aMayuscula(String nombre) {
        nombre=nombre.toUpperCase();
        return nombre;
    }
    
    
    public void cargarDiccionario(){
        this.diccionario= new ArrayList<String>();
        this.diccionario.add("ALCANCIA");
        this.diccionario.add("ANTIGUO");
        this.diccionario.add("BEBE");
        this.diccionario.add("BALÓN");
        this.diccionario.add("CASA");
        this.diccionario.add("CUADRADO");
        this.diccionario.add("DADO");
        this.diccionario.add("DEDO");
        this.diccionario.add("ELEFANTE");
        this.diccionario.add("ENCUENTRO");
        this.diccionario.add("FOCA");
        this.diccionario.add("FILANTROPIA");
        this.diccionario.add("GATO");
        this.diccionario.add("GARRAFA");
        this.diccionario.add("HIELO");
        this.diccionario.add("HOLA");
        this.diccionario.add("IGLESIA");
        this.diccionario.add("IGUANA");
        this.diccionario.add("JARRÓN");
        this.diccionario.add("JIRAFA");
        this.diccionario.add("KIMONO");
        this.diccionario.add("KILO");
        this.diccionario.add("LIMÓN");
        this.diccionario.add("LADRILLO");
        this.diccionario.add("MONTE");
        this.diccionario.add("MANADA");
        this.diccionario.add("NEÓN");
        this.diccionario.add("NITRÓGENO");
        this.diccionario.add("ÑOÑO");
        this.diccionario.add("ÑAME");
        this.diccionario.add("OTORRINORALINGOLOGO");
        this.diccionario.add("OSO");
        this.diccionario.add("PAQUETE");
        this.diccionario.add("PAPA");
        this.diccionario.add("QUESO");
        this.diccionario.add("QUERER");
        this.diccionario.add("RATÓN");
        this.diccionario.add("RISA");
        this.diccionario.add("SACO");
        this.diccionario.add("SALPICÓN");
        this.diccionario.add("TETERO");
        this.diccionario.add("TRIO");
        this.diccionario.add("UVA");
        this.diccionario.add("URGENTE");
        this.diccionario.add("VACA");
        this.diccionario.add("VICIO");
        this.diccionario.add("WILSON");
        this.diccionario.add("WALK");
        this.diccionario.add("XILOFONO");
        this.diccionario.add("XENÓN");
        this.diccionario.add("YUCA");
        this.diccionario.add("YESO");
        this.diccionario.add("ZAPATO");
        this.diccionario.add("ZAPOTE");
    }
    
    /**
     * Trae las palabras encontradas en el diccionario según la letra de parámetro.
     * @param letraxBuscar
     * @return 
     */
    public void encontrarEjemplos(char letraxBuscar){
        cargarDiccionario();
        this.ejemplo="";
        Iterator iterador= this.diccionario.iterator();
        int indice=0;
        while(iterador.hasNext() && indice<54){ //itera en todos los índices hasta el 53.
            String palabra= this.diccionario.get(indice).toString();
            if(palabra.charAt(0)==letraxBuscar){ //Siempre va a coger la primer letra de la palabra.
                this.ejemplo +=  "\t / " +palabra;
            }        
            indice++;
        }
        
    }
    
    
    public char buscaLetraAnt(String palabra,int posicionLetraXBuscar){
        char letraAnterior;
        int posicionReal= posicionLetraXBuscar-1;
            if(posicionReal<0){
                letraAnterior= '_';
            }else{
                letraAnterior=palabra.charAt(posicionLetraXBuscar-1);
            }
            return letraAnterior;
    }
    
     public char buscaLetraSig(String palabra,int posicionLetraXBuscar){
        char letraSiguiente;
        int posicionReal= posicionLetraXBuscar+1;
            if(posicionReal>palabra.length()-1){
                letraSiguiente= '_';
            }else{
                letraSiguiente=palabra.charAt(posicionLetraXBuscar+1);
            }
            return letraSiguiente;
    }
    
    public static void main(String args[]){
        GestionarDiccionario d = new GestionarDiccionario();
       // d.cargarDiccionario();
       // System.out.println(d.diccionario.get(0).toString());
       // System.err.println("Palabras: " + d.encontrarEjemplos('Z'));
        //char letra= d.buscaLetraAnt("HOLA", 1);
        char letra= d.buscaLetraSig("HOLA", 3);
        System.err.println( letra );
    }
    
}

